package com.shenghui.enterprise.base.service;
import com.shenghui.enterprise.base.entity.BaseRole;
import com.shenghui.enterprise.vo.Result;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @Description: 角色管理业务逻辑接口
 * @Author houjh
 * @Email: happyxiaohou@gmail.com
 * @Date: 2020-05-29
 * @Copyright (c) 2020-2022 云南昇晖科技有限公司
 */

public interface IBaseRoleService extends IService<BaseRole> {
    /**
     * 查询树形列表
     * @param map
     * @return
     */
    Object getBaseRoleList(Map map);

    /**
     * 删除模块信息
     * @param id
     * @return
     */
    Result deleteBaseRole(String id);

    /**
     * 修改模块排序值
     * @param id
     * @return
     */
    Result updateBaseRoleOrder(String id, Integer orderValue);

    /**
     * 获取角色授权树
     * @return
     */
    Object getAuthorTree(String roleId, HttpServletRequest request, Map params);

    /**
     * 添加角色授权信息
     * @param roleId
     * @return
     */
    Result addAuthorize(String roleId, String moduleId);

    /**
     * 取消角色授权信息
     * @param
     * @return
     */
    Result cancelAuthorize(String roleId, String moduleId);

    /**
     * 添加模块信息
     * @return
     */
    Result addBaseRole(BaseRole role, String id);

    /**
     * 通过id查询模块信息
     * @param id
     * @return
     */
    BaseRole getBaseRoleById(String id);

    /**
     * 根据角色ID查询子集角色ID
     */
    List<String> getChildRoleIdByParentId(String parentId, List<String> list);
}
